package secondStage.part4.字符流;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/**
 * @ClassName: [ZiFuLiu2]
 * @Description: 字符流写数据的5种方式
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-04]
 * @Version: [v1.0]
 */
/*
构造方法:
    OutputStreamWriter (OutputStream out): 创建一个使 用默认字符编码的0utputStreamWriter
写数据的5种方式:
    void write (int c): 写一个字符
    void write (char[] cbuf): 写入一个字符数组
    void write (char[] cbuf, int off, int len): 写入字符数组的一部分
    void write (String str): 写一个字符串
    void write (String str, int off,int len):写一个字符串的一部分
常用方法
    flush();刷新流，还可以继续写数据
    close();关闭流，释放资源，但是在关闭之前会先刷新流。一旦关闭，就不能再写数据
 */
public class ZiFuLiu2 {
    public static void main(String[] args) throws IOException {
        //创建字符流输入对象
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("java.txt"));
        //写数据
        //void write (int c): 写一个字符
        osw.write(97);

        //void write (char[] cbuf): 写入一个字符数组
        char[] chs = {'A','B','C','D','e','F'};
        osw.write(chs);
        //void write (char[] cbuf, int off, int len): 写入字符数组的一部分
        osw.write(chs,0,chs.length);
        osw.write(chs,1,3);

        //void write (String str): 写一个字符串
        osw.write("qwer");
        //void write (String str, int off,int len):写一个字符串的一部分
        osw.write("ijnbhdf",0,"ijnbhdf".length());
        osw.write("qweasdzxc",2,3);

        //void flush();刷新流
        osw.flush();//仅仅是刷新流缓冲
        osw.close();//先刷新流，再关闭流
    }
}
